<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
require_once 'auto.php';
require_once 'conexion.php';

class PersistenciaAuto {

    private static $instance = false;

    public static function getInstance() {
        if (!self::$instance instanceof self) {
            self::$instance = new self;
        }
        return self::$instance;
    }

    public function crearAuto($datos) {
        try {
            $db = Conexion::getInstance();
            $aux = '0';
            if ($this->traeraAuto($datos) == null) {
                $sentencia = "INSERT INTO auto (matricula,idtipo,iddepartamento) VALUES('" . $datos[0] . "'," . $datos[1] . ",'" . $datos[2] . "')";
                echo $sentencia;
                $db->consulta($sentencia);
                $aux = '1';
            }
            return $aux;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function armarAuto($datos) {
        try {
//            var_dump($datos);
            require_once 'persistenciaTipo_Auto.php';
            require_once 'persistenciaDepartamento.php';
            $tipo = PersistenciaTipo_Auto::getInstance();
            $departamento = PersistenciaDepartamento::getInstance();
            $autos = array();
            if (!is_null($datos)) {
                foreach ($datos as $auto) {
                    $aut = new Auto(null);
                    $aut->matricula = $auto[0];
                    $x = array($auto[1]);
                    $aut->tipo = $tipo->traerTipo($x);
                    $z = array($auto[2]);
                    $aut->departamento = $departamento->traeraDepartamento($z);
//                    var_dump($aut);
                    array_push($autos, $aut);
                }
            }
            return $autos;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function traeraAuto($datos) {
        try {
            $db = Conexion::getInstance();
            if (is_array($datos)) {
                $sentencia = "select * from auto where matricula='" . $datos[0] . "'";
            } else {
                $sentencia = "select * from auto";
            }
//            echo $sentencia;
            return $this->armarAuto($db->consulta($sentencia));
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function actualizarAuto($datos) {
        try {
            $db = Conexion::getInstance();
            $aux = 0;
            if (count($this->traeraAuto($datos[0])) != 0) {
                $sentencia = "UPDATE auto SET idtipo=" . $datos[1] . ", iddepartamento='" . $datos[2] . "' WHERE matricula='" . $datos[0] . "'";
                
                $db->consulta($sentencia);
                $aux = 1;
            }
            return $aux;
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

    public function eliminarAuto($datos) {
        try {
            $db = Conexion::getInstance();
            $sentencia = "delete from auto where matricula='" . $datos . "'";
            $db->consulta($sentencia);
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }

}

?>
